//基于职位诱惑的jquery 包装集的插件选择
(function($){
    $.fn.posTemptation = function(optionss){
        var opts = $.extend({
            posArr:"",
            posArr2:"",
            showPosTemptation:'',
            posTemptation:'#posTemptation',
            showTemptation:'#showTemptation',
            ismod:''
        },optionss||{}); //合并内容
        //直接指向this
        var target = this;
        var inputval = '';
        var hovering = '';

        target.hover(function(){
            hovering=1;
        },function(){
            hovering='';
        });
        //点击事件
        target.click(function(index){
            hovering=1;
            //窗口压缩事件
            $(window).resize(function(){
                ////判断对象是不是显示
                if($(opts.showPosTemptation).is(':visible')) {
                    $(opts.showPosTemptation).css({
                        "left": target.offset().left,
                        "top": target.offset().top+target.height()+1
                    })
                }
            });

            if($(opts.showPosTemptation).find('.postempt').length < 1){
                //追加数组到页面
                appendArr();
                //设置标记位
                $(opts.showPosTemptation).hover(function(){
                    hovering=1;
                },function(){
                    hovering='';
                });


                //判断是不是修改时
                if(opts.ismod == '1'){
                    if($(opts.posTemptation).val() != ''){
                        var arrnew = new Array();
                        arrmod=$(opts.posTemptation).val().split(',');//注split可以用字符或字符串分割
                        var start = opts.posArr.length;
                        for(var i=0;i<arrmod.length;i++){
                            if(in_array(arrmod[i],opts.posArr)){
                                var index = i+start;
                                var strs = '';
                                strs+= '<li id="addp'+index+'"><span class="pval">'+arrmod[i]+'</span><span class="close">×</span></li>';
                                $(opts.showPosTemptation).find('.pleft .addposT ul').append(strs);

                                delNode(index); //删除节点
                                addNode(index); //添加节点
                            }else{
                                var strs = '';
                                strs+= '<li class="custom"><span class="pval">'+arrmod[i]+'</span><span class="close">×</span></li>';
                                $(opts.showPosTemptation).find('.pleft .addposT ul').append(strs);
                            }
                        }
                        //添加input的表单值 表单赋值
                        inputvals($(opts.posTemptation).val());
                    }
                }

                //点击职位诱惑选择
                $(opts.showPosTemptation).find('.pleft .showposT li').find('a').each(function(index) {
                    $(this).click(function(){
                        //添加选择内
                        xadd($(this),index);
                        //添加input的表单值 表单赋值
                        inputvals($(this).html());

                        delNode(index); //删除节点
                        addNode(index); //添加节点

                    });
                });

                //添加自定义职位诱惑
                $(opts.showPosTemptation).find('.pleft .addpostem').on("click",".addt a", function (event) {
                    var inpval;
                    if($(this).parent().parent().find('input').val().length >10){
                        inpval = $(this).parent().parent().find('input').val();
                        inpval = inpval.substring(0,9).trim();
                    }else{
                        inpval = str_trim($(this).parent().parent().find('input').val());
                    }

                    var retu =true;
                    $(opts.showPosTemptation).find('.pleft .addposT li').find('span.pval').each(function(index){
                        if($(this).html() == inpval){
                            retu = false;
                            return false;
                        }else{
                            retu = true;
                        }
                    });
                    if(inpval != '' && retu){
                        var strs = '';
                        strs+= '<li class="custom"><span class="pval">'+inpval+'</span><span class="close">×</span></li>';
                        $(opts.showPosTemptation).find('.pleft .addposT ul').append(strs);
                        $(this).parent().parent().find('input').val('');
                        //添加input的表单值 表单赋值
                        inputvals(inpval);
                    }
                });
                //删除自定义的
                $(opts.showPosTemptation).find('.pleft .addposT').on("click",".custom .close", function (event){
                    $(this).parent('li').remove();
                    var ppval = $(this).parent('li').find('span.pval').html();
                    removeinputvals(ppval);
                });
                //键盘按下事件
                $(opts.showPosTemptation).find('.pleft .addpostem').find('input').keydown(function(){
                    if($(this).val().length > 9){
                        $(this).val($(this).val().substring(0,9));
                    }
                });
                //点击确定
                $(opts.showPosTemptation).find('.plight').find('a').click(function(){
                    $(opts.showPosTemptation).hide();
                });

                //点击其它地方隐常菜单
                $(document).bind("click",function(){
                    if(hovering!=1){
                        $(opts.showPosTemptation).hide();
                    }
                });

            }else{
                $(opts.showPosTemptation).show();
                if($(opts.showPosTemptation).is(':visible')) {
                    $(opts.showPosTemptation).css({
                        "left": target.offset().left,
                        "top": target.offset().top+target.height()+1
                    })
                }
            }
        });

        //删除节点
        function delNode(index){
            $(opts.showPosTemptation).find('.pleft .addposT').on("click","#addp"+index+" .close", function (event) {
                var ppval = $(this).parent('li').find('span.pval').html();
                //删除
                xclose($(this),index,ppval);
                //删除input值
                removeinputvals(ppval);
            });
        }

        //添加节点
        function addNode(index){
            $(opts.showPosTemptation).find('.pleft .showposT').on("click","#removep"+index+" a", function (event) {
                //添加选择内
                xadd($(this),index);
                //添加input的表单值 表单赋值
                inputvals($(this).html());
            });
        }

        //添加
        function xadd(othis,index){
            var strs = '';
            strs+= '<li id="addp'+index+'"><span class="pval">'+othis.html()+'</span><span class="close">×</span></li>';
            $(opts.showPosTemptation).find('.pleft .addposT ul').append(strs);
            othis.parent('li').remove();
        }
        //删除
        function xclose(othis,index,ppval){
            var strs = '';
            strs+= '<li id="removep'+index+'"><a href="javascript:void(0)">'+ppval+'</a></li>';
            $(opts.showPosTemptation).find('.pleft .showposT ul').append(strs);
            othis.parent('li').remove();
        }

        //添加input值
        function inputvals(inpval){
            inputval += ','+inpval;
            inputval = inputval.replace(/(^,)|(,$)/gi,"");
            $(opts.posTemptation).val(inputval);
            $(opts.showTemptation).val(inputval);
        }

        //删除input值
        function removeinputvals(ppval){
            var arr=$(opts.posTemptation).val().split(',');//注split可以用字符或字符串分割;
            for(var i=0;i<arr.length;i++){
                if(arr[i] == ppval){
                    arr.splice(i,1);
                }
            }
            inputval = arr.join(",");
            $(opts.posTemptation).val(inputval);
            $(opts.showTemptation).val(inputval);
        }
        //js判断某个值是不是在数组内
        function in_array(searchval,array){
            for(var i in array){
                if(array[i]==searchval){
                    return true;
                }
            }
            return false;
        }

        /*
         *追加到页面中
         */
        function appendArr(){
            var str = '';
            str += '<div class="postempt">';
            str += '<div class="pleft">';

            str += '<div class="addposT" id="addposT">';
            str += '<ul>';
            str += '</ul>';
            str += '</div>';

            str += '<div class="showposT">';
            str += '<ul>';
            $.each(opts.posArr,function(key,value){
                //判断是不是修改
                if(opts.ismod == '1'){
                    if($(opts.posTemptation).val() != ''){
                        var arrnew = new Array();
                        arrmod=$(opts.posTemptation).val().split(',');//注split可以用字符或字符串分割
                        if(in_array(value,arrmod)){
                            return true;
                        }
                    }
                }
                str += '<li><a href="javascript:void(0)">'+value+'</a></li>';
            });
            str += '</ul>';
            str += '</div>';
            str += '<div class="addpostem">';
            str += '<span><input name="" type="text" value="" id="" placeholder="自定义添加标签(限10个字)" /></span>';
            str += '<span class="addt"><a href="javascript:void(0)">添加</a></span>';
            str += '</div>';
            str += '<div class="stopper" style="margin-top:5px;"></div>';
            str += '</div>';
            str += '<div class="plight"><a href="javascript:void(0)">确定</a></div>';
            str += '</div>';
            $(opts.showPosTemptation).append(str);
            $(opts.showPosTemptation).css({
                left:target.offset().left,
                top:target.offset().top+target.height()+1
            }).show();
        }
        return this;
    };
})(jQuery);